//
//  SXPLogInNavVCotroller.swift
//  weibo
//
//  Created by shixinPeng on 16/2/26.
//  Copyright © 2016年 shixinPeng. All rights reserved.
//
/*
关于使用新浪的api
首先要注册成为开发者账号,获取几个参数
第一个:
App Key：
170819901

App Secret：
91066323532cdf25997b8a7df7154d18


授权回调页：
http://www.taobao.com

//第一个请求 修改过后的
https://api.weibo.com/oauth2/authorize?client_id=170819901&redirect_uri=http://www.taobao.com&response_type=code
//
后面是根据返回的code,来再次获取oken
*/

import UIKit
import AFNetworking
import SVProgressHUD

class SXPLogInNavVCotroller: UIViewController, UIWebViewDelegate {

    var web: UIWebView?
    //加载一个web页面
    override func loadView() {
        //不用重写父类方法,因为load 的作用就是加载视图页面,我们已经给视图页面一个web页面了
        //实例一个web页面
         web = UIWebView()
        //设置代理
        web?.delegate = self
        
        //设为主页面
        view = web
        
        //print(view)
        
        
        
    }
    override func viewDidLoad() {
        super.viewDidLoad()
        view.backgroundColor = UIColor.orangeColor()
        //加载item
        setNav()
        //发送网络请求
        let urlstr = NSURL(string: "https://api.weibo.com/oauth2/authorize?client_id=\(APP_KEY)&redirect_uri=\(APP_URL)&response_type=code")!
        
        let request = NSURLRequest(URL: urlstr)
        
        web?.loadRequest(request)

    }
    //开始加载web调用的方法
    func webViewDidStartLoad(webView: UIWebView) {
        
        SVProgressHUD.show()
    }
    //完成加载的方法
    func webViewDidFinishLoad(webView: UIWebView) {
        SVProgressHUD.dismiss()
        
    }
    //加载错误出现的方法
    func webView(webView: UIWebView, didFailLoadWithError error: NSError?) {
        SVProgressHUD.dismiss()
        
    }
    //MARK: 发送网络请求获取code
    func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool{
        
        //获取我们所需要的那条URL
        if let url = request.URL?.absoluteString{//如果有值
            //对url进行操作 操作前缀
            if url.hasPrefix(APP_URL){

                if let subCode = request.URL?.query {
                    
                    
                    //截取
                    let code = subCode.substringFromIndex("code=".endIndex)

                    
                    //由这个方法负责失败或者成功后的操作,传递两个闭包到要结束的地方
                    //去获取token
                                        SXPuserViewModels().loadToken(code, successClosure: { () -> Void in
                        
                        //MARK: 使用通知切换根控制器,回到访问视图
                        NSNotificationCenter.defaultCenter().postNotificationName(kNotificationChangRootVC, object: nil)
                        
                        //回调成功
                        print("acder success!")
                        self.disMiss()
                        }, failClosure: { () -> Void in
                            //回调失败
                            SVProgressHUD.showErrorWithStatus("error")
                    })
                    
                    return false
                    
                }
        }
        }
        return true
    }

    //MARK: 添加左右item 和方法
    func setNav() {
        
        //设置左右的item
        navigationItem.leftBarButtonItem = UIBarButtonItem(title: "返回", style: UIBarButtonItemStyle.Plain, target: self, action: "disMiss")
        navigationItem.rightBarButtonItem = UIBarButtonItem(title: "自动填充", style: UIBarButtonItemStyle.Plain, target: self, action: "navAutoFill")
   
    }
    
    func disMiss() {
        
        dismissViewControllerAnimated(true) { () -> Void in
            
        }
    }
    func navAutoFill() {
  
        let js = "document.getElementById(\"userId\").value = \"495416980@qq.com\";document.getElementById(\"passwd\").value = \"hjbf8023+\";"
        //使用JS注入自动填充
        web?.stringByEvaluatingJavaScriptFromString(js)
    }
    
    
    

}

//MARK: 通过code 后去Token
extension SXPLogInNavVCotroller{
    
    
    
}
//MARK: 根据模型获取数据
extension SXPLogInNavVCotroller {
    
    }


   